// require属于CMD规范
var gulp = require('gulp');  // 引入核心工具gulp
var gulp_minify_css = require("gulp-minify-css"); // 压缩css
var gulp_sass = require("gulp-sass"); // 编译sass
var gulp_uglify = require("gulp-uglify"); // 压缩JS文件
var babel = require('gulp-babel'); // 将ES6代码转为ES5
var browserSync = require('browser-sync').create(); // 支持浏览器热更新
var tiny = require("gulp-tinypng"); // tinypng压缩图片
var autoprefixer = require("gulp-autoprefixer"); // 自动添加css属性的前缀（兼容性） cnpm i --save-dev gulp-autoprefixer
var copy  = require("gulp-copy");// 复制静态资源文件 cnpm i --save-dev gulp-copy

gulp.task("bs",function () {
    browserSync.init({
        server: {
            baseDir: "./"
        },
        // 修改端口号
        port:4000
    });
    gulp.watch("src/scss/**/*.scss",["sass"])
        .on('change',browserSync.reload);
    gulp.watch("src/**/*.html",["copyHtml"])
        .on("change",browserSync.reload)
});

// 自定义一个任务
gulp.task('init',function () {
    console.log('init');
});

// 自定义默认任务
gulp.task('default', function() {
    // 将你的默认的任务代码放在这
    console.log("default");
});

// 编译sass
gulp.task("sass",function () {
    gulp.src("src/scss/**/*.scss")
        .pipe(gulp_sass())
        .pipe(gulp.dest('dist/css'))
});

// 实时监听scss 并将其转化为css
gulp.task("watchScss", function () {
    gulp.watch("src/scss/**/*.scss",["sass"])
});

// 压缩css
gulp.task("minifycss", function () {
//    文件源头
    gulp.src("src/css/**/*.css")
        // 自动添加css属性的前缀（兼容性）
        .pipe(autoprefixer({
            browsers: ['last 2 versions', 'Android >= 4.0', 'iOS 7', 'last 3 Safari versions'],
            cascade: true, // 美化代码属性
            remove: true
        }))
        .pipe(gulp_minify_css())
        .pipe(gulp.dest('dist/css'))
});

// 压缩js
gulp.task("minifyjs",function () {
    gulp.src("src/js/**/*.js")
        .pipe(babel({
            presets: ['env']
        }))
        .pipe(gulp_uglify())
        .pipe(gulp.dest('dist/js'))
});
// 复制html文件
gulp.task("copyHtml",function () {
    gulp.src("src/**/*.html")
        .pipe(gulp.dest("dist/"))
});

// 压缩图片 cnpm i gulp-tinypng --save-dev
gulp.task("minifyimg", function(){
	// 代表src/img目录下的任意文件夹中的任意文件
	gulp.src("src/img/**/*.*")
        .pipe(tiny("s7XAma9jZvBwBRutfxhNe4VsHDaYEkSW")) // 这个api要上tinypng（https://tinypng.com/）的网上注册一个免费账号拿到，一个api每天会有几百张免费限额压缩
        .pipe(gulp.dest("dist/img/"))
});

// 复制静态文件
gulp.task("copy",function () {
    gulp.src("src/media/**/*.*")
        .pipe(copy("dist/media",{prefix:"2"}))
});

// 一键压缩CSS，JS,HTML
gulp.task("pro",["copyHtml","minifycss","minifyjs","copy"]);


